﻿using System.Collections.Generic;
using DomainModel;

namespace Repository.Abstract
{
    public interface ITimetableUnitRepository : IRepository<TimetableUnit>
    {
        IEnumerable<User> GetTeachersBySubjectId(long subjectId);
        TimetableUnit GetByWeekDayPairNoGroup(StudySemester semester, int week, int day, int pairNo, Group group);
        TimetableUnit GetByWeekDayPairNoGroupTeacherSubject(StudySemester semester, int week, int day, int pairNo, Group group, User teacher, Subject subject);
        TimetableUnit GetByWeekDayPairNoGroupTeacher(StudySemester semester, int week, int day, int pairNo, Group group, User teacher);
        TimetableUnit GetByWeekDayPairNoGroupSubject(StudySemester semester, int week, int day, int pairNo, Group group, Subject subject);
        IEnumerable<TimetableUnit> GetByWeekDayPairNoTeacher(StudySemester semester, int week, int day, int pairNo, User teacher);
        IEnumerable<TimetableUnit> GetByWeekDayPairNoRoom(StudySemester semester, int week, int day, int pairNo, string room);
        IEnumerable<TimetableUnit> GetByWeekDayPairNo(StudySemester semester, int week, int day, int pairNo);
        IEnumerable<Subject> GetSubjectsByTeacher(User teacher);
    }
}